package com.tianyang.yukuaifu.rxservice.interfaces;

import com.tianyang.yukuaifu.common.interfaces.UrlConstants;

import java.util.Map;

import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
 * Description：plate-agent接口
 * Created by xyj on 2024/3/12
 */
public interface PlateAgentService {

    /**
     * 登录
     * @param param 请求参数
     */
    @POST(UrlConstants.merchantLogin)
    Observable<Object> merchantLogin(@Body Map<String, String> param);
    /**
     * 代理商登录
     * @param param 请求参数
     */
    @POST(UrlConstants.agentLogin)
    Observable<Object> agentLogin(@Body Map<String, String> param);

    /**
     * 验证码登录
     * @param param 请求参数
     */
    @POST(UrlConstants.merchantMobileLogin)
    Observable<Object> merchantMobileLogin(@Body Map<String, String> param);

    /**
     * 代理商验证码登录
     * @param param 请求参数
     */
    @POST(UrlConstants.agentMobileLogin)
    Observable<Object> agentMobileLogin(@Body Map<String, String> param);

    /**
     * 注册
     * @param param 请求参数
     */
    @POST(UrlConstants.register)
    Observable<Object> register(@Body Map<String, String> param);

    /**
     * 获取短信验证码
     * @param param 请求参数
     */
    @GET(UrlConstants.getVerifyCode)
    Observable<Object> getVerifyCode(@QueryMap Map<String, String> param);

    /**
     * 修改密码
     * @param param 请求参数
     */
    @POST(UrlConstants.modifyPassword)
    Observable<Object> modifyPassword(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 忘记密码
     * @param param 请求参数
     */
    @POST(UrlConstants.forgetPassword)
    Observable<Object> forgetPassword(@Body Map<String, String> param);

    /**
     * 获取用户信息
     * @param param 请求参数
     */
    @GET(UrlConstants.getUserInfo)
    Observable<Object> getUserInfo(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 保存进件临时数据
     * @param param 请求参数
     */
    @POST(UrlConstants.idcertTemp)
    Observable<Object> saveIdCertTemp(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 查询进件临时数据
     * @param param 请求参数
     */
    @GET(UrlConstants.getIdcertTemp)
    Observable<Object> getIdCertTemp(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 查询行业MCC   所属行业
     * @param param 请求参数
     */
    @GET(UrlConstants.posMccCode)
    Observable<Object> posMccCode(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 查询MCC  支付宝 微信
     * @param param 请求参数
     */
    @GET(UrlConstants.yplMccCode)
    Observable<Object> yplMccCode(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 查询银行卡银联号
     * @param param 请求参数
     */
    @GET(UrlConstants.posBankBranchCode)
    Observable<Object> posBankBranchCode(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 身份ORC识别
     * @param param 请求参数
     */
    @GET(UrlConstants.idCardReg)
    Observable<Object> idCardReg(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 银行卡ORC
     * @param param 请求参数
     */
    @GET(UrlConstants.bankReg)
    Observable<Object> bankReg(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 营业执照识别
     * @param param 请求参数
     */
    @GET(UrlConstants.licenseReg)
    Observable<Object> licenseReg(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 省份
     * @param param 请求参数
     */
    @POST(UrlConstants.getProvinceList)
    Observable<Object> getProvinceList(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 市
     * @param param 请求参数
     */
    @POST(UrlConstants.getCityList)
    Observable<Object> getCityList(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 地区
     * @param param 请求参数
     */
    @POST(UrlConstants.getAreaList)
    Observable<Object> getAreaList(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 实名认证
     * @param param 请求参数
     */
    @POST(UrlConstants.idcert3)
    Observable<Object> idcert3(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 查询费率模板
     * @param param 请求参数
     */
    @GET(UrlConstants.getPosTemplateRate)
    Observable<Object> getPosTemplateRate(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 费率设置
     * @param param 请求参数
     */
    @POST(UrlConstants.addPosUserRate)
    Observable<Object> addPosUserRate(@Header("Authorization") String authorization, @Body Map<String, Object> param);

    /**
     * 发展商户列表
     * @param param 请求参数
     */
    @GET(UrlConstants.posUserManage)
    Observable<Object> posUserManage(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 服务商列表
     * @param param 请求参数
     */
    @GET(UrlConstants.posAgentManage)
    Observable<Object> posAgentManage(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 查询审核状态
     * @param param 请求参数
     */
    @GET(UrlConstants.getIdcertconfirm)
    Observable<Object> getIdcertconfirm(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 授权
     * @param param 请求参数
     */
    @GET(UrlConstants.yplMerchantVerify)
    Observable<Object> yplMerchantVerify(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 新增店铺
     * @param param 请求参数
     */
    @POST(UrlConstants.createNewStoreMerchant)
    Observable<Object> createNewStoreMerchant(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 合成海报
     * @param param 请求参数
     */
    @POST(UrlConstants.compositePoster)
    Observable<Object> compositePoster(@Header("Authorization") String authorization, @Body Map<String, Object> param);

    /**
     * 查询结算卡
     * @param param 请求参数
     */
    @GET(UrlConstants.queryjiesuancard)
    Observable<Object> queryjiesuancard(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 首页统计接口
     * @param param 请求参数
     */
    @GET(UrlConstants.appAgentHomeStatQb)
    Observable<Object> appAgentHomeStatQb(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 业绩首页接口（新）
     * @param param 请求参数
     */
    @GET(UrlConstants.getAgentStatHistory)
    Observable<Object> getAgentStatHistory(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 服务商交易统计
     * @param param 请求参数
     */
    @GET(UrlConstants.posMerchantTradeTotal)
    Observable<Object> posMerchantTradeTotal(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 直推商户详情
     * @param param 请求参数
     */
    @POST(UrlConstants.posMerchantTradeDetail)
    Observable<Object> posMerchantTradeDetail(@Header("Authorization") String authorization, @Body Map<String, Object> param);

    /**
     * 下级服务商业绩
     * @param param 请求参数
     */
    @GET(UrlConstants.subAgentStatHistoryList)
    Observable<Object> subAgentStatHistoryList(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 间推业绩详情
     * @param param 请求参数
     */
    @GET(UrlConstants.subAgentStatHistoryDetail)
    Observable<Object> subAgentStatHistoryDetail(@Header("Authorization") String authorization, @QueryMap Map<String, Object> param);

    /**
     * 帮助中心
     */
    @POST(UrlConstants.getServicePhone)
    Observable<Object> getServicePhone(@Header("Authorization") String authorization);

    /**
     * 获取示例图片
     */
    @POST(UrlConstants.getSampleImage)
    Observable<Object> getSampleImage(@Header("Authorization") String authorization);

    /**
     * 获取APP版本信息
     */
    @POST(UrlConstants.getAppVersionInfo)
    Observable<Object> getAppVersionInfo(@Header("Authorization") String authorization);

    /**
     * 经营范围
     */
    @POST(UrlConstants.getBusinessScopeList)
    Observable<Object> getBusinessScopeList(@Header("Authorization") String authorization);

    /**
     * 渠道列表
     */
    @POST(UrlConstants.getChannelList)
    Observable<Object> getChannelList(@Header("Authorization") String authorization);

    /**
     * 添加结算卡
     */
    @POST(UrlConstants.addjiesuancard)
    Observable<Object> addjiesuancard(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 添加服务商
     */
    @POST(UrlConstants.agentRegisterNew)
    Observable<Object> agentRegisterNew(@Header("Authorization") String authorization, @Body Map<String, String> param);
}
